iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0
  • forEach() : 會將陣列內的每個元素,皆傳入並執行給定的函式一次。
    forEach不會有回傳值, 就像一般的for迴圈

    const array1 = ['a', 'b', 'c'];
    
    1.
    array1.forEach(function(h){
    console.log(h));
    
    function(h)= (h)=>
    
    2.
    array1.forEach((h) =>{
    console.log(h)});
    
  • forEach() 應用:

    1. 讓陣列的每個名字長度變成五倍

      let heroes = ["A", "b", "C"];
      
      const result = [];
      
      heroes.forEach(function (h) {
        result.push(h.repeat(5));
      });
      
      console.log(result);  //['AAAAA', 'bbbbb', 'CCCCC']
      
  • map() : 會將原本的內容運算過後, 建立一個新的陣列
    會有回傳值

    let numbers = [1, 2, 3, 4, 5];
    
    let double = numbers.map(function (n) {
      return n * 2;
    });
    
    console.log(double);  //[2, 4, 6, 8, 10]
    
    let heroes = ["a", "b", "c"];
    
    1.
    let result = [];
    result = heroes.map(function (n) {
      return n.repeat(5);
    });
    console.log(result); // ['aaaaa', 'bbbbb', 'ccccc']
    
    2.
    let result = [];
    result = heroes.map(function (n) {
      return "我是" + n;
    });
    console.log(result); //['我是a', '我是b', '我是c']
    

    map語法:

    let new_array = arr.map(function callback( currentValue[, index[, array]]) {
    // return element for new_array
    }[, thisArg])
    

    callback

    呼叫 arr 所有元素的回呼函式。新數值會在每次執行 callback 時加到 new_array
    callback 函式可傳入以下三個參數:

    1. currentValue原陣列目前所迭代處理中的元素。
    2. index (選擇性) :原陣列目前所迭代處理中的元素之索引。
    3. array (選擇性) :呼叫 map 方法的陣列。
    4. thisArg (選擇性): 選擇性的參數。執行 callback 回呼函式的 this 值。
  • find() : 返回符合條件的第一個元素

    let heroes = ["AA", "B", "CCC", "D"];
    
    let user = heroes.find(function (h) {
      return h.length >= 2;
    });
    
    console.log(user); //AA
    
  • fliter() : 回傳符合條件的元素
    會有回傳值

    let heroes = ["aaa", "bbbb", "c", "dd"];
    
    let result = heroes.filter(function (n) {
      return n.length >= 2;
    });
    
    console.log(result);  //['aaa', 'bbbb', 'dd']
    
    // 編號:CANDY-003
    // 程式語言:JavaScript
    // 題目:完成函數的內容,把陣列裡的 0 都移到最後面
    
    let list = [false, 1, 0, -1, 2, 0, 1, 3, "a"];
    
    function moveZerosToEnd(arr) {
      // 程式碼寫在這裡
      let nonzero = arr.filter(function (n) {
        return n !== 0;
      });
      let zero = arr.filter(function (n) {
        return n === 0;
      });
    
      return nonzero.concat(zero);
    }
    
    let result = moveZerosToEnd(list);
    console.log(result); // 印出 [false, 1, -1, 2, 1, 3, "a", 0, 0]
    

  • 另外JavaScript中有一些方法可以在字串和陣列之間進行共用。這些方法包括:
  1. length: length 屬性用於獲取字串或陣列的長度。它返回字串中的字符數或陣列中的元素數量。
  2. indexOf(): indexOf() 方法在字串或陣列中搜索指定的元素,並返回第一個匹配的索引位置。如果未找到匹配的元素,則返回-1。
  3. slice(): slice()方法在字串或陣列中截取指定範圍的部分,並返回一個新的字串或陣列,不影響原始的字串或陣列。
  4. concat(): concat()方法用於將兩個或多個字串或陣列合併成一個新的字串或陣列。它返回一個新的合併後的字串或陣列,不影響原始的字串或陣列。
  5. toUpperCase(): toUpperCase()方法將字串中的所有字母轉換為大寫,並返回轉換後的新字串。
  6. toLowerCase(): toLowerCase()方法將字串中的所有字母轉換為小寫,並返回轉換後的新字串。
  7. split(): split()方法將字串按指定的分隔符拆分為一個字串陣列。
  8. join(): join()方法將陣列中的所有元素連接為一個字串,並使用指定的分隔符分隔各個元素。

這些方法可以通過**StringArray**對象直接調用,因為字串和陣列都是JavaScript中的內建對象類型。注意,這些方法中的某些方法在字串和陣列之間的使用方式可能有些差異,但它們的目的是相似的,可以在兩者之間進行共用。


上一篇
[Day 6] 陣列 part1
下一篇
[Day 8] 陣列 part 3
系列文
30天從零到有,帶你進入程式的世界30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言